//
//  MASExampleTableView.m
//  MasonryExample
//
//  Created by 山刘 on 2020/6/10.
//  Copyright © 2020 山刘. All rights reserved.
//

#import "MASExampleTableView.h"
#import "MASTableViewDataSorceSubImpl.h"
#import "MASTableViewDelegateImpl.h"

@interface MASExampleTableView()
@property (strong, nonatomic) UITableView *tableView;
@property (strong, nonatomic) MASTableViewDataSorceSubImpl *dataSource;
@property (strong, nonatomic) MASTableViewDelegateImpl *delegate;
@property (strong, nonatomic) NSArray<TableViewDataModelVO*> *data;
@end

@implementation MASExampleTableView

- (instancetype)init {
    if (self == [super init]) {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"data.json" ofType:nil];
        NSData *data = [[NSData alloc] initWithContentsOfFile:path];
        NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:NULL];
        
        NSMutableArray<TableViewDataModelVO*> *tempt = [NSMutableArray array];
        for (NSDictionary *object in array) {
            TableViewDataModelVO * data = [TableViewDataModelVO yy_modelWithJSON:object];
            [tempt addObject:data];
        }
        self.data = [NSArray arrayWithArray:tempt];
        
        self.dataSource = [MASTableViewDataSorceSubImpl new];
        self.dataSource.dataSource = self.data;
        self.delegate = [MASTableViewDelegateImpl new];
        self.delegate.dataSource = self.data;
        
        [self addSubview:self.tableView];
        self.tableView.dataSource = self.dataSource;
        self.tableView.delegate = self.delegate;
        [self.tableView reloadData];
        
        [self.tableView makeConstraints:^(MASConstraintMaker *make) {
            make.edges.equalTo(self);
        }];
    }
    return self;
}

-(void)dealloc {
}

-(UITableView *)tableView{
    if (!_tableView) {
        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
        _tableView.estimatedRowHeight = 60;
        _tableView.rowHeight = UITableViewAutomaticDimension; //默认值可省略。
    }
    return _tableView;
}
@end
